package com.liu.users.pojo;



import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

import com.alibaba.fastjson.annotation.JSONField;
import com.liu.common.pojo.BasePojo;

import lombok.Data;

/**
 * 用户列表的pojo
 * @author lby
 *
 */
@Data
public class AUsers extends BasePojo<AUsers>
{
	private int id;
	private int regionId ;
	private String email;
	private String password;
	private String photoPath;
	private String nickName;
	private String phone;
	private String qq;
	private int loginFailedCount;
	private Date loginFailedTime;
	private int loginCount;
	private String lastLoginIp;
	private String instro;
	private byte emailStatus;
	private byte phoneStatus;
	private byte bodyType;
	private byte status;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date pubTime;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date lastLoginTime;
	
	/**
	 * 一个用户只能对应一个地区
	 */
	private ARegion region ;
	
	/**
	 * 状态字符串描述
	 */
	private String statusStr ;
	/**
	 * 邮箱字符串描述
	 */
	private String emailStatusStr ;
	
	/**
	 * 存储枚举
	 * 枚举有三个要素
	 * map有两个要素
	 * map的key:枚举的对象，status,值是info
	 */
	private Map<String,String>enumsMap = new TreeMap<String,String>();
	/**
	 * 自己写一个get方法
	 * @return
	 */
	public String getStatusStr()
	{
		/*取到所有的*/
		 AUsersEnum[] enums = AUsersEnum.values();
		 for(int i = 0 ; i < enums.length ;i++)
		 {
			  AUsersEnum enumTemp = enums[i];
			  /*取到所有的枚举分为三个部分，
			   * enumTemp.toString():对象名
			   * enumTemp.getStatus():状态值
			   * enumTemp.getInfo():info值
			   * */
			  if(enumTemp.toString().startsWith("STATUS_") && enumTemp.getStatus() == this.getStatus())
			  {
				  this.statusStr = enumTemp.getInfo();
				  break;
			  }
		 }
		 return statusStr ;
	}
	public Map<String,String> getEnumsMap()
	{
		AUsersEnum[] enums = AUsersEnum.values();
		for(int i = 0 ; i < enums.length ; i ++)
		{
			AUsersEnum enumTemp = enums[i] ; 
			this.enumsMap.put(enumTemp.toString() + "-" + enumTemp.getStatus(), enumTemp.getInfo());
		}
		return this.enumsMap ; 
	}
	/**
	 * 自己写了一个get方法
	 * @return
	 */
	public String getEmailStatusStr()
	{
		/* 取所有的 */
		AUsersEnum[] enums = AUsersEnum.values();
		for(int i = 0 ; i < enums.length ; i ++)
		{
			AUsersEnum enumTemp = enums[i] ; 
			/*
			 * enumTemp.toString():对象名
			 * enumTemp.getStatus():状态值
			 * enumTemp.getInfo():info值
			 * */
			if(enumTemp.toString().startsWith("EMAILSTATUS_") && enumTemp.getStatus() == this.getEmailStatus())
			{
				this.emailStatusStr = enumTemp.getInfo() ; 
				break ; 
			}
		}
		return emailStatusStr ; 
	}
	
}
